perm filename SPRINT.FAI[IRC,LCS]1 blob sn#249599 filedate 1977-03-30 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE SPRINT 
C00006 ENDMK
C⊗;
	TITLE SPRINT 
	INTERNAL PRINT,IFIX,FLOAT,FORNAM,RNDINT,RAND
	EXTERNAL FILES.	    ;WRITING ON DSK (DEV.1 ONLY!)

;FORTRAN CALLABLE RANDOM NUMBER GENERATOR
;
;USE    CALL RNDINT   TO INITIALIZE THE GENERATOR
;                     (THE GENERATOR IS LOADED INITIALIZED)
;USE    RAND(XL,XH)   AS A FUNCTION TO RETURN THE NEXT 
;                     RANDOM NUMBER BETWEEN XL AND XH
;                     (XL,XH ARE FLOATING POINT,RAND RETURNS
;		      FLOATING POINT)
;
RNDINT:	0
	MOVE 0,[756132257563]
	MOVEM 0,R1
	ADDI 0,2
	MOVEM 0,R2
	JRA 16,0(16)
R1:	756132257563
R2:	756132257565

RAND:	0
	MOVEM 1,TEMP
	MOVE 0,@0(16)
	MOVE 1,@1(16)
	FSBR 1,0
	MOVEM 0,LLIM#
	MOVE 0,R1
	ADD 0,R2
	EXCH 0,R2
	MOVEM 0,R1
	LSH 0,-11
	FSC 0,200
	FMP 0,1
	FAD 0,LLIM
	MOVE 1,TEMP
	JRA 16,2(16)
TEMP:	0

IFIX:	0
	KIFIX 0,@(16)
	JRA 16,1(16)
FLOAT:	0
	FLTR 0,@(16)
	JRA 16,1(16)
A←1
B←2
C←3
D←4
P←17
LOOP:	PUSHJ	P,TYI
	POPJ	P,
	CAIN	A,15
	JRST	LOOP
	CAIN	A,12
	JRST	MK1
	CAIN	A,53
	JRST	MK2
	TRNN	B,2
	JRST	OUTIT
	MOVEI	B,0
	MOVE	C,A
	MOVEI	A,15
	PUSHJ	P,TYO
	MOVEI	A,12
	PUSHJ	P,TYO
	MOVE	A,C
OUTIT:	PUSHJ	P,TYO
	JRST	LOOP

MK1:	TRO	B,2
	JRST	LOOP

MK2:	TRNN	B,2
	JRST	OUTIT
	MOVEI	B,0
	JRST	LOOP

PRINT:	0
	INIT	12,0
	SIXBIT	/LPT/
	XWD	OBUF,
	CALLI	12
	OUTBUF	12,2

COMDLP:	PUSHJ	P,DNIT
	PUSHJ	P,LOOP

EXIT:	MOVEI A,14
	RELEASE	11,0
	RELEASE 12,0
	JRA 16,(16)

DNIT:	RELEASE	11,0
	INIT	11,0
	SIXBIT	/DSK/
	IBUF
	CALLI	12
	SETZM FILNAM+3
	LOOKUP	11,FILNAM
	CALLI	12
	INBUF	11,2
	POPJ	P,
TYI:	SOSLE	IBUF+2
	JRST	OKIN
	IN	11,0
	JRST	OKIN
	STATZ	11,20000
	POPJ	P,

	CALLI	12

OKIN:	ILDB	A,IBUF+1
	JUMPE	A,TYI
	AOS	(P)
	POPJ	P,

TYO:	SOSG	OBUF+2
	OUTPUT	12,0
	IDPB	A,OBUF+1
	POPJ	P,

IBUF:	BLOCK	3
OBUF:	BLOCK	3
FILNAM:	SIXBIT/FOR22/
	SIXBIT/DAT/
	0
	0
PDL:	BLOCK 10

FORNAM:	0	
;CHANGES NAMES TO SIXBIT
	MOVE 0,@0(16)
	MOVEM 0,FN#
	MOVE 1,[POINT 7,FN]
INTF3:	MOVE 2,[POINT 6,NAM]
	SETZM NAM
	MOVEI 3,5
INTF1:	ILDB 0,1
	CAIN 0," "
	JRST INTF2
	SUBI 0,40
	IDPB 0,2
	SOJG 3,INTF1
INTF2:	MOVE 0,@1(16)
	MOVEM 0,EX#
	MOVE 1,[POINT 7,EX]
EXTF3:	MOVE 2,[POINT 6,EXT]
	SETZM EXT
	MOVEI 3,5
EXTF1:	ILDB 0,1
	CAIN 0," "
	JRST EXTF2
	SUBI 0,40
	IDPB 0,2
	SOJG 3,EXTF1
EXTF2:	MOVE 0,NAM#
	MOVEM 0,FILES.
	MOVE 0,EXT#
	MOVEM 0,FILES.+1
	JRA 16,2(16)

	END